<!DOCTYPE html>

<html>
  <head>
    <meta charset="utf-8">
    
    <title>Contributing to NumPy &mdash; NumPy v1.18 Manual</title>
    
    <link rel="stylesheet" type="text/css" href="../_static/css/spc-bootstrap.css">
    <link rel="stylesheet" type="text/css" href="../_static/css/spc-extend.css">
    <link rel="stylesheet" href="../_static/scipy.css" type="text/css" >
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" >
    <link rel="stylesheet" href="../_static/graphviz.css" type="text/css" >
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '1.18.1',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  false
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="../_static/language_data.js"></script>
    <script type="text/javascript" src="../_static/js/copybutton.js"></script>
    <link rel="author" title="About these documents" href="../about.html" >
    <link rel="index" title="Index" href="../genindex.html" >
    <link rel="search" title="Search" href="../search.html" >
    <link rel="top" title="NumPy v1.18 Manual" href="../index.html" >
    <link rel="next" title="NumPy Code of Conduct" href="conduct/code_of_conduct.html" >
    <link rel="prev" title="Advanced F2PY usages" href="../f2py/advanced.html" > 
  </head>
  <body>
<div class="container">
  <div class="top-scipy-org-logo-header" style="background-color: #a2bae8;">
    <a href="../index.html">
      <img border=0 alt="NumPy" src="../_static/numpy_logo.png"></a>
    </div>
  </div>
</div>


    <div class="container">
      <div class="main">
        
	<div class="row-fluid">
	  <div class="span12">
	    <div class="spc-navbar">
              
    <ul class="nav nav-pills pull-left">
        <li class="active"><a href="https://numpy.org/">NumPy.org</a></li>
        <li class="active"><a href="https://numpy.org/doc">Docs</a></li>
        
        <li class="active"><a href="../index.html">NumPy v1.18 Manual</a></li>
        
 
    </ul>
              
              
    <ul class="nav nav-pills pull-right">
      <li class="active">
        <a href="../genindex.html" title="General Index"
           accesskey="I">index</a>
      </li>
      <li class="active">
        <a href="conduct/code_of_conduct.html" title="NumPy Code of Conduct"
           accesskey="N">next</a>
      </li>
      <li class="active">
        <a href="../f2py/advanced.html" title="Advanced F2PY usages"
           accesskey="P">previous</a>
      </li>
    </ul>
              
	    </div>
	  </div>
	</div>
        

	<div class="row-fluid">
      <div class="spc-rightsidebar span3">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../contents.html">Table of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Contributing to NumPy</a><ul>
<li><a class="reference internal" href="#development-process-summary">Development process - summary</a><ul>
<li><a class="reference internal" href="#divergence-between-upstream-master-and-your-feature-branch">Divergence between <code class="docutils literal notranslate"><span class="pre">upstream/master</span></code> and your feature branch</a></li>
<li><a class="reference internal" href="#guidelines">Guidelines</a></li>
<li><a class="reference internal" href="#stylistic-guidelines">Stylistic Guidelines</a></li>
<li><a class="reference internal" href="#test-coverage">Test coverage</a></li>
<li><a class="reference internal" href="#building-docs">Building docs</a><ul>
<li><a class="reference internal" href="#requirements">Requirements</a></li>
<li><a class="reference internal" href="#fixing-warnings">Fixing Warnings</a></li>
</ul>
</li>
</ul>
</li>
<li><a class="reference internal" href="#development-process-details">Development process - details</a></li>
</ul>
</li>
</ul>

  <h4>Previous topic</h4>
  <p class="topless"><a href="../f2py/advanced.html"
                        title="previous chapter">Advanced F2PY usages</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="conduct/code_of_conduct.html"
                        title="next chapter">NumPy Code of Conduct</a></p>
<div id="searchbox" style="display: none" role="search">
  <h4>Quick search</h4>
    <div>
    <form class="search" action="../search.html" method="get">
      <input type="text" style="width: inherit;" name="q" />
      <input type="submit" value="search" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    </div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
          <div class="span9">
            
        <div class="bodywrapper">
          <div class="body" id="spc-section-body">
            
  <div class="section" id="contributing-to-numpy">
<h1>Contributing to NumPy<a class="headerlink" href="#contributing-to-numpy" title="Permalink to this headline">¶</a></h1>
<p>Not a coder? Not a problem! NumPy is multi-faceted, and we can use a lot of help.
These are all activities we’d like to get help with (they’re all important, so
we list them in alphabetical order):</p>
<ul class="simple">
<li><p>Code maintenance and development</p></li>
<li><p>Community coordination</p></li>
<li><p>DevOps</p></li>
<li><p>Developing educational content &amp; narrative documentation</p></li>
<li><p>Writing technical documentation</p></li>
<li><p>Fundraising</p></li>
<li><p>Project management</p></li>
<li><p>Marketing</p></li>
<li><p>Translating content</p></li>
<li><p>Website design and development</p></li>
</ul>
<p>The rest of this document discusses working on the NumPy code base and documentation.
We’re in the process of updating our descriptions of other activities and roles.
If you are interested in these other activities, please contact us!
You can do this via
the <a class="reference external" href="https://scipy.org/scipylib/mailing-lists.html">numpy-discussion mailing list</a>,
or on GitHub (open an issue or comment on a relevant issue). These are our preferred
communication channels (open source is open by nature!), however if you prefer
to discuss in private first, please reach out to our community coordinators
at <em class="xref py py-obj">numpy-team&#64;googlegroups.com</em> or <em class="xref py py-obj">numpy-team.slack.com</em> (send an email to
<em class="xref py py-obj">numpy-team&#64;googlegroups.com</em> for an invite the first time).</p>
<div class="section" id="development-process-summary">
<h2>Development process - summary<a class="headerlink" href="#development-process-summary" title="Permalink to this headline">¶</a></h2>
<p>Here’s the short summary, complete TOC links are below:</p>
<ol class="arabic">
<li><p>If you are a first-time contributor:</p>
<ul>
<li><p>Go to <a class="reference external" href="https://github.com/numpy/numpy">https://github.com/numpy/numpy</a> and click the
“fork” button to create your own copy of the project.</p></li>
<li><p>Clone the project to your local computer:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">git</span> <span class="n">clone</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">your</span><span class="o">-</span><span class="n">username</span><span class="o">/</span><span class="n">numpy</span><span class="o">.</span><span class="n">git</span>
</pre></div>
</div>
</li>
<li><p>Change the directory:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">numpy</span>
</pre></div>
</div>
</li>
<li><p>Add the upstream repository:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">git</span> <span class="n">remote</span> <span class="n">add</span> <span class="n">upstream</span> <span class="n">https</span><span class="p">:</span><span class="o">//</span><span class="n">github</span><span class="o">.</span><span class="n">com</span><span class="o">/</span><span class="n">numpy</span><span class="o">/</span><span class="n">numpy</span><span class="o">.</span><span class="n">git</span>
</pre></div>
</div>
</li>
<li><p>Now, <em class="xref py py-obj">git remote -v</em> will show two remote repositories named:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">upstream</span></code>, which refers to the <code class="docutils literal notranslate"><span class="pre">numpy</span></code> repository</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">origin</span></code>, which refers to your personal fork</p></li>
</ul>
</li>
</ul>
</li>
<li><p>Develop your contribution:</p>
<ul>
<li><p>Pull the latest changes from upstream:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">git</span> <span class="n">checkout</span> <span class="n">master</span>
<span class="n">git</span> <span class="n">pull</span> <span class="n">upstream</span> <span class="n">master</span>
</pre></div>
</div>
</li>
<li><p>Create a branch for the feature you want to work on. Since the
branch name will appear in the merge message, use a sensible name
such as ‘linspace-speedups’:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">git</span> <span class="n">checkout</span> <span class="o">-</span><span class="n">b</span> <span class="n">linspace</span><span class="o">-</span><span class="n">speedups</span>
</pre></div>
</div>
</li>
<li><p>Commit locally as you progress (<code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">add</span></code> and <code class="docutils literal notranslate"><span class="pre">git</span> <span class="pre">commit</span></code>)
Use a <a class="reference internal" href="development_workflow.html#writing-the-commit-message"><span class="std std-ref">properly formatted</span></a> commit message,
write tests that fail before your change and pass afterward, run all the
<a class="reference internal" href="development_environment.html#development-environment"><span class="std std-ref">tests locally</span></a>. Be sure to document any
changed behavior in docstrings, keeping to the NumPy docstring
<a class="reference internal" href="../docs/howto_document.html#howto-document"><span class="std std-ref">standard</span></a>.</p></li>
</ul>
</li>
<li><p>To submit your contribution:</p>
<ul>
<li><p>Push your changes back to your fork on GitHub:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">git</span> <span class="n">push</span> <span class="n">origin</span> <span class="n">linspace</span><span class="o">-</span><span class="n">speedups</span>
</pre></div>
</div>
</li>
<li><p>Enter your GitHub username and password (repeat contributors or advanced
users can remove this step by connecting to GitHub with
<a class="reference internal" href="gitwash/development_setup.html#set-up-and-configure-a-github-account"><span class="std std-ref">SSH</span></a> .</p></li>
<li><p>Go to GitHub. The new branch will show up with a green Pull Request
button. Make sure the title and message are clear, concise, and self-
explanatory. Then click the button to submit it.</p></li>
<li><p>If your commit introduces a new feature or changes functionality, post on
the <a class="reference external" href="https://mail.python.org/mailman/listinfo/numpy-devel">mailing list</a> to explain your changes. For bug fixes, documentation
updates, etc., this is generally not necessary, though if you do not get
any reaction, do feel free to ask for review.</p></li>
</ul>
</li>
<li><p>Review process:</p>
<ul class="simple">
<li><p>Reviewers (the other developers and interested community members) will
write inline and/or general comments on your Pull Request (PR) to help
you improve its implementation, documentation and style.  Every single
developer working on the project has their code reviewed, and we’ve come
to see it as friendly conversation from which we all learn and the
overall code quality benefits.  Therefore, please don’t let the review
discourage you from contributing: its only aim is to improve the quality
of project, not to criticize (we are, after all, very grateful for the
time you’re donating!).</p></li>
<li><p>To update your PR, make your changes on your local repository, commit,
<strong>run tests, and only if they succeed</strong> push to your fork. As soon as
those changes are pushed up (to the same branch as before) the PR will
update automatically. If you have no idea how to fix the test failures,
you may push your changes anyway and ask for help in a PR comment.</p></li>
<li><p>Various continuous integration (CI) services are triggered after each PR
update to build the code, run unit tests, measure code coverage and check
coding style of your branch. The CI tests must pass before your PR can be
merged. If CI fails, you can find out why by clicking on the “failed”
icon (red cross) and inspecting the build and test log. To avoid overuse
and waste of this resource,
<a class="reference internal" href="development_environment.html#recommended-development-setup"><span class="std std-ref">test your work</span></a> locally before
committing.</p></li>
<li><p>A PR must be <strong>approved</strong> by at least one core team member before merging.
Approval means the core team member has carefully reviewed the changes,
and the PR is ready for merging.</p></li>
</ul>
</li>
<li><p>Document changes</p>
<p>Beyond changes to a functions docstring and possible description in the
general documentation, if your change introduces any user-facing
modifications they may need to be mentioned in the release notes.
To add your change to the release notes, you need to create a short file
with a summary and place it in <code class="docutils literal notranslate"><span class="pre">doc/release/upcoming_changes</span></code>.
The file <code class="docutils literal notranslate"><span class="pre">doc/release/upcoming_changes/README.rst</span></code> details the format and
filename conventions.</p>
<p>If your change introduces a deprecation, make sure to discuss this first on
GitHub or the mailing list first. If agreement on the deprecation is
reached, follow <a class="reference external" href="http://www.numpy.org/neps/nep-0023-backwards-compatibility.html">NEP 23 deprecation policy</a>  to add the deprecation.</p>
</li>
<li><p>Cross referencing issues</p>
<p>If the PR relates to any issues, you can add the text <code class="docutils literal notranslate"><span class="pre">xref</span> <span class="pre">gh-xxxx</span></code> where
<code class="docutils literal notranslate"><span class="pre">xxxx</span></code> is the number of the issue to github comments. Likewise, if the PR
solves an issue, replace the <code class="docutils literal notranslate"><span class="pre">xref</span></code> with <code class="docutils literal notranslate"><span class="pre">closes</span></code>, <code class="docutils literal notranslate"><span class="pre">fixes</span></code> or any of
the other flavors <a class="reference external" href="https://help.github.com/en/articles/closing-issues-using-keywords">github accepts</a>.</p>
<p>In the source code, be sure to preface any issue or PR reference with
<code class="docutils literal notranslate"><span class="pre">gh-xxxx</span></code>.</p>
</li>
</ol>
<p>For a more detailed discussion, read on and follow the links at the bottom of
this page.</p>
<div class="section" id="divergence-between-upstream-master-and-your-feature-branch">
<h3>Divergence between <code class="docutils literal notranslate"><span class="pre">upstream/master</span></code> and your feature branch<a class="headerlink" href="#divergence-between-upstream-master-and-your-feature-branch" title="Permalink to this headline">¶</a></h3>
<p>If GitHub indicates that the branch of your Pull Request can no longer
be merged automatically, you have to incorporate changes that have been made
since you started into your branch. Our recommended way to do this is to
<a class="reference internal" href="development_workflow.html#rebasing-on-master"><span class="std std-ref">rebase on master</span></a>.</p>
</div>
<div class="section" id="guidelines">
<h3>Guidelines<a class="headerlink" href="#guidelines" title="Permalink to this headline">¶</a></h3>
<ul class="simple">
<li><p>All code should have tests (see <a class="reference internal" href="#test-coverage">test coverage</a> below for more details).</p></li>
<li><p>All code should be <a class="reference external" href="https://numpydoc.readthedocs.io/en/latest/format.html#docstring-standard">documented</a>.</p></li>
<li><p>No changes are ever committed without review and approval by a core
team member.Please ask politely on the PR or on the <a class="reference external" href="https://mail.python.org/mailman/listinfo/numpy-devel">mailing list</a> if you
get no response to your pull request within a week.</p></li>
</ul>
</div>
<div class="section" id="stylistic-guidelines">
<h3>Stylistic Guidelines<a class="headerlink" href="#stylistic-guidelines" title="Permalink to this headline">¶</a></h3>
<ul>
<li><p>Set up your editor to follow <a class="reference external" href="https://www.python.org/dev/peps/pep-0008/">PEP 8</a> (remove trailing white space, no tabs, etc.).  Check code with
pyflakes / flake8.</p></li>
<li><p>Use numpy data types instead of strings (<code class="docutils literal notranslate"><span class="pre">np.uint8</span></code> instead of
<code class="docutils literal notranslate"><span class="pre">&quot;uint8&quot;</span></code>).</p></li>
<li><p>Use the following import conventions:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
</pre></div>
</div>
</li>
<li><p>For C code, see the <a class="reference internal" href="style_guide.html#style-guide"><span class="std std-ref">numpy-c-style-guide</span></a></p></li>
</ul>
</div>
<div class="section" id="test-coverage">
<h3>Test coverage<a class="headerlink" href="#test-coverage" title="Permalink to this headline">¶</a></h3>
<p>Pull requests (PRs) that modify code should either have new tests, or modify existing
tests to fail before the PR and pass afterwards. You should <a class="reference internal" href="development_environment.html#development-environment"><span class="std std-ref">run the tests</span></a> before pushing a PR.</p>
<p>Tests for a module should ideally cover all code in that module,
i.e., statement coverage should be at 100%.</p>
<p>To measure the test coverage, install
<a class="reference external" href="https://pytest-cov.readthedocs.io/en/latest/">pytest-cov</a>
and then run:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ python runtests.py --coverage
</pre></div>
</div>
<p>This will create a report in <code class="docutils literal notranslate"><span class="pre">build/coverage</span></code>, which can be viewed with:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ firefox build/coverage/index.html
</pre></div>
</div>
</div>
<div class="section" id="building-docs">
<h3>Building docs<a class="headerlink" href="#building-docs" title="Permalink to this headline">¶</a></h3>
<p>To build docs, run <code class="docutils literal notranslate"><span class="pre">make</span></code> from the <code class="docutils literal notranslate"><span class="pre">doc</span></code> directory. <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">help</span></code> lists
all targets. For example, to build the HTML documentation, you can run:</p>
<div class="highlight-sh notranslate"><div class="highlight"><pre><span></span>make html
</pre></div>
</div>
<p>Then, all the HTML files will be generated in <code class="docutils literal notranslate"><span class="pre">doc/build/html/</span></code>.
Since the documentation is based on docstrings, the appropriate version of
numpy must be installed in the host python used to run sphinx.</p>
<div class="section" id="requirements">
<h4>Requirements<a class="headerlink" href="#requirements" title="Permalink to this headline">¶</a></h4>
<p><a class="reference external" href="http://www.sphinx-doc.org/en/stable/">Sphinx</a> is needed to build
the documentation. Matplotlib, SciPy, and IPython are also required.</p>
</div>
<div class="section" id="fixing-warnings">
<h4>Fixing Warnings<a class="headerlink" href="#fixing-warnings" title="Permalink to this headline">¶</a></h4>
<ul class="simple">
<li><p>“citation not found: R###” There is probably an underscore after a
reference in the first line of a docstring (e.g. [1]_). Use this
method to find the source file: $ cd doc/build; grep -rin R####</p></li>
<li><p>“Duplicate citation R###, other instance in…”” There is probably a
[2] without a [1] in one of the docstrings</p></li>
</ul>
</div>
</div>
</div>
<div class="section" id="development-process-details">
<h2>Development process - details<a class="headerlink" href="#development-process-details" title="Permalink to this headline">¶</a></h2>
<p>The rest of the story</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="conduct/code_of_conduct.html">NumPy Code of Conduct</a><ul>
<li class="toctree-l2"><a class="reference internal" href="conduct/code_of_conduct.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="conduct/code_of_conduct.html#specific-guidelines">Specific Guidelines</a></li>
<li class="toctree-l2"><a class="reference internal" href="conduct/code_of_conduct.html#diversity-statement">Diversity Statement</a></li>
<li class="toctree-l2"><a class="reference internal" href="conduct/code_of_conduct.html#reporting-guidelines">Reporting Guidelines</a></li>
<li class="toctree-l2"><a class="reference internal" href="conduct/code_of_conduct.html#incident-reporting-resolution-code-of-conduct-enforcement">Incident reporting resolution &amp; Code of Conduct enforcement</a></li>
<li class="toctree-l2"><a class="reference internal" href="conduct/code_of_conduct.html#endnotes">Endnotes</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="gitwash/index.html">Git Basics</a><ul>
<li class="toctree-l2"><a class="reference internal" href="gitwash/git_intro.html">Install git</a></li>
<li class="toctree-l2"><a class="reference internal" href="gitwash/following_latest.html">Get the local copy of the code</a></li>
<li class="toctree-l2"><a class="reference internal" href="gitwash/following_latest.html#updating-the-code">Updating the code</a></li>
<li class="toctree-l2"><a class="reference internal" href="gitwash/development_setup.html">Getting started with Git development</a></li>
<li class="toctree-l2"><a class="reference internal" href="gitwash/configure_git.html">Git configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="gitwash/dot2_dot3.html">Two and three dots in difference specs</a></li>
<li class="toctree-l2"><a class="reference internal" href="gitwash/git_resources.html">Additional Git Resources</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="development_environment.html">Setting up and using your development environment</a><ul>
<li class="toctree-l2"><a class="reference internal" href="development_environment.html#recommended-development-setup">Recommended development setup</a></li>
<li class="toctree-l2"><a class="reference internal" href="development_environment.html#testing-builds">Testing builds</a></li>
<li class="toctree-l2"><a class="reference internal" href="development_environment.html#building-in-place">Building in-place</a></li>
<li class="toctree-l2"><a class="reference internal" href="development_environment.html#other-build-options">Other build options</a></li>
<li class="toctree-l2"><a class="reference internal" href="development_environment.html#using-virtualenvs">Using virtualenvs</a></li>
<li class="toctree-l2"><a class="reference internal" href="development_environment.html#running-tests">Running tests</a></li>
<li class="toctree-l2"><a class="reference internal" href="development_environment.html#rebuilding-cleaning-the-workspace">Rebuilding &amp; cleaning the workspace</a></li>
<li class="toctree-l2"><a class="reference internal" href="development_environment.html#debugging">Debugging</a></li>
<li class="toctree-l2"><a class="reference internal" href="development_environment.html#understanding-the-code-getting-started">Understanding the code &amp; getting started</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="development_workflow.html">Development workflow</a><ul>
<li class="toctree-l2"><a class="reference internal" href="development_workflow.html#basic-workflow">Basic workflow</a></li>
<li class="toctree-l2"><a class="reference internal" href="development_workflow.html#additional-things-you-might-want-to-do">Additional things you might want to do</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../benchmarking.html">NumPy benchmarks</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../benchmarking.html#usage">Usage</a></li>
<li class="toctree-l2"><a class="reference internal" href="../benchmarking.html#writing-benchmarks">Writing benchmarks</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="style_guide.html">NumPy C Style Guide</a><ul>
<li class="toctree-l2"><a class="reference internal" href="style_guide.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="style_guide.html#c-dialect">C dialect</a></li>
<li class="toctree-l2"><a class="reference internal" href="style_guide.html#code-lay-out">Code lay-out</a></li>
<li class="toctree-l2"><a class="reference internal" href="style_guide.html#naming-conventions">Naming conventions</a></li>
<li class="toctree-l2"><a class="reference internal" href="style_guide.html#function-documentation">Function documentation</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="releasing.html">Releasing a Version</a><ul>
<li class="toctree-l2"><a class="reference internal" href="releasing.html#how-to-prepare-a-release">How to Prepare a Release</a></li>
<li class="toctree-l2"><a class="reference internal" href="releasing.html#step-by-step-directions">Step-by-Step Directions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="governance/index.html">NumPy governance</a><ul>
<li class="toctree-l2"><a class="reference internal" href="governance/governance.html">NumPy project governance and decision-making</a></li>
<li class="toctree-l2"><a class="reference internal" href="governance/people.html">Current steering council and institutional partners</a></li>
</ul>
</li>
</ul>
</div>
<p>NumPy-specific workflow is in <a class="reference internal" href="development_workflow.html#development-workflow"><span class="std std-ref">numpy-development-workflow</span></a>.</p>
</div>
</div>


          </div>
        </div>
          </div>
        </div>
      </div>
    </div>

    <div class="container container-navbar-bottom">
      <div class="spc-navbar">
        
      </div>
    </div>
    <div class="container">
    <div class="footer">
    <div class="row-fluid">
    <ul class="inline pull-left">
      <li>
        &copy; Copyright 2008-2019, The SciPy community.
      </li>
      <li>
      Last updated on Feb 20, 2020.
      </li>
      <li>
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 2.4.2.
      </li>
    </ul>
    </div>
    </div>
    </div>
  </body>
</html>